The invention relates to real time motion estimation in MPEG2 compliant digital video encoding. Motion estimation is the compression between pictures through the use of motion vectors. According to the invention temporal compression of a digital video data stream is carried out by hierarchically searching in at least one search unit for pixels in a reference picture to find a best match macroblock for the current macroblock. This is followed by constructing a motion vector between the current macroblock and the best match macroblock in the reference picture.
Within the past decade, the advent of world-wide electronic communications systems has enhanced the way in which people can send and receive information. In particular, the capabilities of real-time video and audio systems have greatly improved in recent years. In order to provide services such as video-on-demand and videoconferencing to subscribers, an enormous amount of network bandwidth is required. In fact, network bandwidth is often the main inhibitor to the effectiveness of such systems.
In order to overcome the constraints imposed by networks, compression systems have emerged. These systems reduce the amount of video and audio data which must be transmitted by removing redundancy in the picture sequence. At the receiving end, the picture sequence is uncompressed and may be displayed in real time.
One example of an emerging video compression standard is the MPEG standard. Within the MPEG standard, video compression is defined both within a given picture and between pictures. Video compression within a picture is accomplished via a process of discrete cosine transformation, quantization, and run length encoding. Video compression between pictures is accomplished via a process referred to as motion estimation, in which a motion vector is used to describe the translation of a set of picture elements (pels) from one picture to another. These motion vectors are themselves encoded.
Motion estimation algorithms are repetitive functions which require a large amount of computational power when effectively implemented. This is especially true if motion estimation is being performed in a real time video transmission environment. In addition, two important constraints imposed by system designers are the card/board area consumed by and cost of the components required to perform the video compression function. This particularly includes the amount of DRAM and/or SRAM required to store reference picture data. A need exists for a robust motion estimation dataflow which maximizes computational power to satisfy real time encoding requirements and minimizes the amount of chip area consumed to implement it. There is also a clear need to make the motion estimation dataflow scalable so that numerous system cost points can be attained.
It is one objective of the invention to provide a robust motion estimation dataflow which maximizes computational power to satisfy real time encoding requirements and minimizes the amount of chip area consumed to implement it.
It is a further objective of the invention to provide the motion estimation dataflow scalable so that numerous system cost points can be attained.
It is a still further objective of the invention to provide a hierarchical motion estimation method and apparatus.
It is a still further objective of the invention to provide a hierarchical motion estimation method and apparatus in which the hierarchical motion estimation search is conducted using downsampled full pixel values.
It is a still further objective of the invention to provide a hierarchical motion estimation method and apparatus in which the hierarchical motion estimation search is a field search.
These and other objectives are achieved by the method and apparatus described herein.
According to the invention there is provided a method of temporal compression of a digital video data stream. The method starts by hierarchically searching in at least one search unit for pixels in a reference picture to find a best match macroblock therein corresponding to the current macroblock. In the next step a motion vector is constructed between the best match macroblock and the current macroblock.
According to a further embodiment, there is provided a method of temporal compression of a digital video data stream. The method comprises using downsampled full pixel values to search for pixels in a reference picture to thereby find a best match macroblock. By a best match macroblock is meant a macroblock in a reference picture which most closely resembles the current macroblock. The next step is constructing a motion vector between the best match macroblock and the current macroblock.
According to a still further embodiment of the invention there is provides a method of temporal compression of a digital video data stream comprising field searching with even/even, odd/odd, even/odd, and odd/even field search unit inputs. The search is for pixels in a reference picture field to find a best match macroblock therein corresponding to the current macroblock. As before a motion vector is constructed between the best match macroblock and the current macroblock.